﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;

namespace GUI
{
    public partial class FormSim : Form
    {
        //1: Thêm sim
        //2: cập nhật sim
        public int status;
        public Boolean reset = false;
        public int maSanPham;
        public FormSim()
        {
            InitializeComponent();
        }

        private void comboboxLoaiSim()
        {
            List<LoaiSimDTO> listLoaiSimDTO = LoaiSimBUS.DanhSachLoaiSim();
            if (listLoaiSimDTO != null)
            {
                cmbLoaiSim.DataSource = listLoaiSimDTO;
                cmbLoaiSim.DisplayMember = "TenLoaiSim";
                cmbLoaiSim.ValueMember = "MaLoaiSim";
                cmbLoaiSim.SelectedItem = 0;
            }
        }

        private void comboboxNhaMang()
        {
            List<NhaMangDTO> listNhaMangDTO = NhaMangBUS.SeleclNhaMangAll();
            if (listNhaMangDTO != null)
            {
                cmbNhaMang.DataSource = listNhaMangDTO;
                cmbNhaMang.DisplayMember = "TenNhaMang";
                cmbNhaMang.ValueMember = "MaNhaMang";
                cmbNhaMang.SelectedItem = 0;
            }
        }

        private void comboboxTinhTrang(string tinhTrang)
        {
            cmbTinhTrang.Items.Add("Đang Bán");
            cmbTinhTrang.Items.Add("Đã Bán");

            if(tinhTrang.ToUpper().Equals("ĐANG BÁN"))
            {
                cmbTinhTrang.SelectedIndex = 0;
            }
            else
            {
                cmbTinhTrang.SelectedIndex = 1;
            }
                
        }

        private void FormSim_Load(object sender, EventArgs e)
        {
            //load loai sim
            comboboxLoaiSim();
            //load nha mamg
            comboboxNhaMang();

            btnThem.Location = new Point(btnThem.Location.X, btnThem.Location.Y - 25);
            btnHuy.Location = new Point(btnHuy.Location.X, btnHuy.Location.Y - 25);

            if (status == 1)
            {
                //theem sim
                lbTinhTrang.Visible = false;
                cmbTinhTrang.Visible = false;
               
            }
            else
            {
                //cap nhat sim
                btnThem.Text = "Cập nhật";
                cmbLoaiSim.Visible = false;
                lbLoaiSim.Visible = false;

                lbNhaMang.Location = new Point(lbNhaMang.Location.X, 113);
                lbTinhTrang.Location = new Point(lbTinhTrang.Location.X, 148);

                cmbNhaMang.Location = new Point(cmbNhaMang.Location.X, 110);
                cmbTinhTrang.Location = new Point(cmbTinhTrang.Location.X, 145);
                SimDTO simDTO = SimBUS.ThongTinSim(maSanPham);
                if (simDTO != null)
                {
                    txtSoThueBao.Text = simDTO.SoThueBao;
                    txtSoSeri.Text = simDTO.SoSeri;
                    txtDonGia.Text = string.Format("{0:#,0.##}", simDTO.DonGia);

                    NhaMangDTO nhaMang = new NhaMangDTO();
                    for (int i = 0; i < cmbNhaMang.Items.Count; i++)
                    {
                        nhaMang = (NhaMangDTO)cmbNhaMang.Items[i];
                        if(nhaMang.MaNhaMang == simDTO.MaNhaMang)
                        {
                            cmbNhaMang.SelectedIndex = i;
                            break;
                        }
                    }

                    comboboxTinhTrang(simDTO.TinhTrang);
                }
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            string err = "";
            if (txtSoThueBao.Text.Length < 10 || txtSoThueBao.Text.Length > 11)
            {
                err+=  "Số thuê bao không hợp lệ\n";
            }

            if (txtSoSeri.Text.Length != 20)
            {
                err += "Số seri không hợp lệ\n";
            }

            if (txtDonGia.Text == "")
            {
                err += "Đơn giá không hợp lệ\n";
            }

            if (err != "")
            {
                MessageBox.Show(err, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                return;
            }

            SimDTO simDTO = new SimDTO();
            simDTO.SoThueBao = txtSoThueBao.Text;
            simDTO.SoSeri = txtSoSeri.Text;
            simDTO.DonGia = float.Parse(txtDonGia.Text);
            simDTO.MaNhaMang = (int)cmbNhaMang.SelectedValue;
            int loaiSim = (int)cmbLoaiSim.SelectedValue;

            if (status == 1)
            {
                //theem sim
                if (SimBUS.ThemSim(simDTO, loaiSim))
                {
                    MessageBox.Show("Thêm thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                    reset = true;
                    this.Dispose();
                }
                else
                {
                    MessageBox.Show("Thêm thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                }
            }
            else
            {
                //cap nhat sim
                simDTO.MaSanPham = maSanPham;
                simDTO.TinhTrang = cmbTinhTrang.Text;
                int kq = SimBUS.CapNhatSim(simDTO);
                switch (kq)
                {
                    case 0:
                        MessageBox.Show("Cập nhật thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                        reset = true;
                        this.Dispose();
                        break;
                    case 2:
                        MessageBox.Show("Sim " + txtSoThueBao.Text + " đã có trong hệ thống.\nCập nhật thất bại", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                        break;
                    case 1:
                        MessageBox.Show("Cập nhật thất bại", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                        break;
                }
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void FormSim_Resize(object sender, EventArgs e)
        {
            pnMain.Location = new Point((this.Width - pnMain.Width) / 2, pnMain.Location.Y);
        }

       

        private void txtSoThueBao_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtSoSeri_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }
    }
}
